The advent of high-speed standards—including 10 gigabits per second (Gbs) and 40 Gbps interfaces—for Ethernet switches and related network routing devices have presented significant challenges to network switch designers. Multiple network interfaces adapted to transmit at such high speeds place a tremendous burden on system resources, particularly the switching fabric. The switching fabric must support multiple lanes of traffic among its egress and ingress interfaces and accommodate traffic bursts. The relatively low interface speeds of preceding switches made it feasible to over-engineer the switching fabric, i.e., make the speed of switching fabric exceed the speed of the interfaces, for purposes of providing the necessary bandwidth. Presently, network switches may employ a switching fabric having a speed on the order of 50-100% greater than the individual interfaces. This practice, however, may be practically or physically impossible in the case of 10 Gbps and 40 Gbps interface speeds.
In view of the performance demands imposed on the switching fabric and switch resources more generally, effective congestion management is becoming increasingly important. Presently, congestion management within a network switch typically entails elaborate queuing operations at ingress and egress. Egress queuing, for example, can temporarily absorb bursts of traffic that exceed the maximum transmission rate of the egress interface. Egress queue capacity may, however, be exceeded where the rate of data accumulation exceeds the rate of data depletion for an extended period of time.
The problems associated with current congestion management approaches are more likely to occur in switches that permit data to be delivered directly to the switching fabric when data is present at ingress and bandwidth available on the switching fabric at that specific instant in time. Such systems allow data to be transmitted to egress regardless of the egress queues to accommodate the data, thus increasing the chance that the data will be dropped at the egress queues. In addition, bursts of traffic can instantaneously consume all the capacity in the system, even where there is enough capacity in the system to handle these bursts if the transmission of data through the switching fabric was properly staggered.
There is therefore a need for a switch adapted to optimize throughput, reduce tail dropping, weigh the needs of different components competing for the same resources, rate the performance of the different components, selectively allocate fabric bandwidth, and anticipate future bandwidth requirements.